﻿using Koala.Pro.Common;
using Koala.Pro.Core.Dto;
using Koala.Pro.Core.Models;

namespace Koala.Pro.Services
{
    public interface IMenuService : IMyCrudService<MenuInfo, string, MenuPagedDto>, ITransientDependency, IDependency
    {
        Task<List<MenuInfo>> GetMenuNodesByPID(string pid, string typeID);

        Task<List<MenuInfo>> GetTree(string systemType);

        Task<List<MenuInfo>> GetMenuNodes(string roleIDs, string typeID);

        Task<List<MenuInfo>> GetMenuNodesByUser(int userID, string typeID);

        Task<List<MenuInfo>> GetMenus(string roleIDs, string typeID);

        Task<List<MenuInfo>> GetMenusByRole(int roleID, string typeID);

        Task<ListResultDto<MenuInfo>> GetAllBySystemType(string systemType);

        Task<string> GetName(string id);
    }
}
